package net.expectx.micro.shop.dao.bean;

import java.io.Serializable;
import java.math.BigDecimal;

public class ProductProduct implements Serializable {
    private Long id;

    private Long productCategoryId;

    private Long productBrandId;

    private Long storeId;

    /**
     * ????
     *
     * @mbg.generated
     */
    private String productSn;

    private String productName;

    /**
     * ????
     *
     * @mbg.generated
     */
    private String productImg;

    /**
     * ????
     *
     * @mbg.generated
     */
    private String productImgs;

    private Long productClickCount;

    /**
     * ??
     *
     * @mbg.generated
     */
    private Long productInventoryNumber;

    /**
     * 库存警告
     *
     * @mbg.generated
     */
    private Long productInventoryWarnNumber;

    /**
     * 产品重量
     *
     * @mbg.generated
     */
    private String productWeight;

    /**
     * 市场价格
     *
     * @mbg.generated
     */
    private BigDecimal productMarketPrice;

    /**
     * 店铺价格
     *
     * @mbg.generated
     */
    private BigDecimal productShopPrice;

    /**
     * 促销价
     *
     * @mbg.generated
     */
    private BigDecimal productPromotePrice;

    /**
     * 促销价开始
     *
     * @mbg.generated
     */
    private String productPromoteStartDate;

    /**
     * 促销价结束
     *
     * @mbg.generated
     */
    private String productPromoteEndDate;

    /**
     * 关键字
     *
     * @mbg.generated
     */
    private String productKeywords;

    /**
     * 商品描述
     *
     * @mbg.generated
     */
    private String productDesc;

    /**
     * 是否时变形产品 1 是 0 否
     *
     * @mbg.generated
     */
    private Byte productIsVariant;

    /**
     * 是否在售1 是 0 否
     *
     * @mbg.generated
     */
    private Byte productIsOnSale;

    /**
     * 排序
     *
     * @mbg.generated
     */
    private Long orders;

    private String storeName;

    private Byte productIsDelete;

    /**
     * 是否精品 1 ? 2 ?
     *
     * @mbg.generated
     */
    private Byte productIsBest;

    /**
     * 是否新品 1?0?
     *
     * @mbg.generated
     */
    private Byte productIsNew;

    /**
     * 是否热销 1?0?
     *
     * @mbg.generated
     */
    private Byte productIsHot;

    /**
     * 是否促销 1 ? 0 ?
     *
     * @mbg.generated
     */
    private Byte productIsPromote;

    /**
     * ????
     *
     * @mbg.generated
     */
    private String productSellerNote;

    /**
     * ?????? 1 ? 0 ?
     *
     * @mbg.generated
     */
    private Byte productIsCheck;

    /**
     * 创建时间
     *
     * @mbg.generated
     */
    private Long gmtCreate;

    /**
     * 更新时间
     *
     * @mbg.generated
     */
    private Long gmtModified;

    /**
     * 逻辑删除（0：否，1：是）
     *
     * @mbg.generated
     */
    private Byte isDeleted;

    /**
     * 长描述
     *
     * @mbg.generated
     */
    private String productLongDesc;

    private static final long serialVersionUID = 1L;

    private ProductCategory productCategory;

    private ProductBrand productBrand;
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProductCategoryId() {
        return productCategoryId;
    }

    public void setProductCategoryId(Long productCategoryId) {
        this.productCategoryId = productCategoryId;
    }

    public Long getProductBrandId() {
        return productBrandId;
    }

    public void setProductBrandId(Long productBrandId) {
        this.productBrandId = productBrandId;
    }

    public Long getStoreId() {
        return storeId;
    }

    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }

    public String getProductSn() {
        return productSn;
    }

    public void setProductSn(String productSn) {
        this.productSn = productSn;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductImg() {
        return productImg;
    }

    public void setProductImg(String productImg) {
        this.productImg = productImg;
    }

    public String getProductImgs() {
        return productImgs;
    }

    public void setProductImgs(String productImgs) {
        this.productImgs = productImgs;
    }

    public Long getProductClickCount() {
        return productClickCount;
    }

    public void setProductClickCount(Long productClickCount) {
        this.productClickCount = productClickCount;
    }

    public Long getProductInventoryNumber() {
        return productInventoryNumber;
    }

    public void setProductInventoryNumber(Long productInventoryNumber) {
        this.productInventoryNumber = productInventoryNumber;
    }

    public Long getProductInventoryWarnNumber() {
        return productInventoryWarnNumber;
    }

    public void setProductInventoryWarnNumber(Long productInventoryWarnNumber) {
        this.productInventoryWarnNumber = productInventoryWarnNumber;
    }

    public String getProductWeight() {
        return productWeight;
    }

    public void setProductWeight(String productWeight) {
        this.productWeight = productWeight;
    }

    public BigDecimal getProductMarketPrice() {
        return productMarketPrice;
    }

    public void setProductMarketPrice(BigDecimal productMarketPrice) {
        this.productMarketPrice = productMarketPrice;
    }

    public BigDecimal getProductShopPrice() {
        return productShopPrice;
    }

    public void setProductShopPrice(BigDecimal productShopPrice) {
        this.productShopPrice = productShopPrice;
    }

    public BigDecimal getProductPromotePrice() {
        return productPromotePrice;
    }

    public void setProductPromotePrice(BigDecimal productPromotePrice) {
        this.productPromotePrice = productPromotePrice;
    }

    public String getProductPromoteStartDate() {
        return productPromoteStartDate;
    }

    public void setProductPromoteStartDate(String productPromoteStartDate) {
        this.productPromoteStartDate = productPromoteStartDate;
    }

    public String getProductPromoteEndDate() {
        return productPromoteEndDate;
    }

    public void setProductPromoteEndDate(String productPromoteEndDate) {
        this.productPromoteEndDate = productPromoteEndDate;
    }

    public String getProductKeywords() {
        return productKeywords;
    }

    public void setProductKeywords(String productKeywords) {
        this.productKeywords = productKeywords;
    }

    public String getProductDesc() {
        return productDesc;
    }

    public void setProductDesc(String productDesc) {
        this.productDesc = productDesc;
    }

    public Byte getProductIsVariant() {
        return productIsVariant;
    }

    public void setProductIsVariant(Byte productIsVariant) {
        this.productIsVariant = productIsVariant;
    }

    public Byte getProductIsOnSale() {
        return productIsOnSale;
    }

    public void setProductIsOnSale(Byte productIsOnSale) {
        this.productIsOnSale = productIsOnSale;
    }

    public Long getOrders() {
        return orders;
    }

    public void setOrders(Long orders) {
        this.orders = orders;
    }

    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    public Byte getProductIsDelete() {
        return productIsDelete;
    }

    public void setProductIsDelete(Byte productIsDelete) {
        this.productIsDelete = productIsDelete;
    }

    public Byte getProductIsBest() {
        return productIsBest;
    }

    public void setProductIsBest(Byte productIsBest) {
        this.productIsBest = productIsBest;
    }

    public Byte getProductIsNew() {
        return productIsNew;
    }

    public void setProductIsNew(Byte productIsNew) {
        this.productIsNew = productIsNew;
    }

    public Byte getProductIsHot() {
        return productIsHot;
    }

    public void setProductIsHot(Byte productIsHot) {
        this.productIsHot = productIsHot;
    }

    public Byte getProductIsPromote() {
        return productIsPromote;
    }

    public void setProductIsPromote(Byte productIsPromote) {
        this.productIsPromote = productIsPromote;
    }

    public String getProductSellerNote() {
        return productSellerNote;
    }

    public void setProductSellerNote(String productSellerNote) {
        this.productSellerNote = productSellerNote;
    }

    public Byte getProductIsCheck() {
        return productIsCheck;
    }

    public void setProductIsCheck(Byte productIsCheck) {
        this.productIsCheck = productIsCheck;
    }

    public Long getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Long gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Long getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Long gmtModified) {
        this.gmtModified = gmtModified;
    }

    public Byte getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Byte isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getProductLongDesc() {
        return productLongDesc;
    }

    public void setProductLongDesc(String productLongDesc) {
        this.productLongDesc = productLongDesc;
    }

    public ProductCategory getProductCategory() {
        return productCategory;
    }

    public void setProductCategory(ProductCategory productCategory) {
        this.productCategory = productCategory;
    }

    public ProductBrand getProductBrand() {
        return productBrand;
    }

    public void setProductBrand(ProductBrand productBrand) {
        this.productBrand = productBrand;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", productCategoryId=").append(productCategoryId);
        sb.append(", productBrandId=").append(productBrandId);
        sb.append(", storeId=").append(storeId);
        sb.append(", productSn=").append(productSn);
        sb.append(", productName=").append(productName);
        sb.append(", productImg=").append(productImg);
        sb.append(", productImgs=").append(productImgs);
        sb.append(", productClickCount=").append(productClickCount);
        sb.append(", productInventoryNumber=").append(productInventoryNumber);
        sb.append(", productInventoryWarnNumber=").append(productInventoryWarnNumber);
        sb.append(", productWeight=").append(productWeight);
        sb.append(", productMarketPrice=").append(productMarketPrice);
        sb.append(", productShopPrice=").append(productShopPrice);
        sb.append(", productPromotePrice=").append(productPromotePrice);
        sb.append(", productPromoteStartDate=").append(productPromoteStartDate);
        sb.append(", productPromoteEndDate=").append(productPromoteEndDate);
        sb.append(", productKeywords=").append(productKeywords);
        sb.append(", productDesc=").append(productDesc);
        sb.append(", productIsVariant=").append(productIsVariant);
        sb.append(", productIsOnSale=").append(productIsOnSale);
        sb.append(", orders=").append(orders);
        sb.append(", storeName=").append(storeName);
        sb.append(", productIsDelete=").append(productIsDelete);
        sb.append(", productIsBest=").append(productIsBest);
        sb.append(", productIsNew=").append(productIsNew);
        sb.append(", productIsHot=").append(productIsHot);
        sb.append(", productIsPromote=").append(productIsPromote);
        sb.append(", productSellerNote=").append(productSellerNote);
        sb.append(", productIsCheck=").append(productIsCheck);
        sb.append(", gmtCreate=").append(gmtCreate);
        sb.append(", gmtModified=").append(gmtModified);
        sb.append(", isDeleted=").append(isDeleted);
        sb.append(", productLongDesc=").append(productLongDesc);
        sb.append("]");
        return sb.toString();
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ProductProduct other = (ProductProduct) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getProductCategoryId() == null ? other.getProductCategoryId() == null : this.getProductCategoryId().equals(other.getProductCategoryId()))
            && (this.getProductBrandId() == null ? other.getProductBrandId() == null : this.getProductBrandId().equals(other.getProductBrandId()))
            && (this.getStoreId() == null ? other.getStoreId() == null : this.getStoreId().equals(other.getStoreId()))
            && (this.getProductSn() == null ? other.getProductSn() == null : this.getProductSn().equals(other.getProductSn()))
            && (this.getProductName() == null ? other.getProductName() == null : this.getProductName().equals(other.getProductName()))
            && (this.getProductImg() == null ? other.getProductImg() == null : this.getProductImg().equals(other.getProductImg()))
            && (this.getProductImgs() == null ? other.getProductImgs() == null : this.getProductImgs().equals(other.getProductImgs()))
            && (this.getProductClickCount() == null ? other.getProductClickCount() == null : this.getProductClickCount().equals(other.getProductClickCount()))
            && (this.getProductInventoryNumber() == null ? other.getProductInventoryNumber() == null : this.getProductInventoryNumber().equals(other.getProductInventoryNumber()))
            && (this.getProductInventoryWarnNumber() == null ? other.getProductInventoryWarnNumber() == null : this.getProductInventoryWarnNumber().equals(other.getProductInventoryWarnNumber()))
            && (this.getProductWeight() == null ? other.getProductWeight() == null : this.getProductWeight().equals(other.getProductWeight()))
            && (this.getProductMarketPrice() == null ? other.getProductMarketPrice() == null : this.getProductMarketPrice().equals(other.getProductMarketPrice()))
            && (this.getProductShopPrice() == null ? other.getProductShopPrice() == null : this.getProductShopPrice().equals(other.getProductShopPrice()))
            && (this.getProductPromotePrice() == null ? other.getProductPromotePrice() == null : this.getProductPromotePrice().equals(other.getProductPromotePrice()))
            && (this.getProductPromoteStartDate() == null ? other.getProductPromoteStartDate() == null : this.getProductPromoteStartDate().equals(other.getProductPromoteStartDate()))
            && (this.getProductPromoteEndDate() == null ? other.getProductPromoteEndDate() == null : this.getProductPromoteEndDate().equals(other.getProductPromoteEndDate()))
            && (this.getProductKeywords() == null ? other.getProductKeywords() == null : this.getProductKeywords().equals(other.getProductKeywords()))
            && (this.getProductDesc() == null ? other.getProductDesc() == null : this.getProductDesc().equals(other.getProductDesc()))
            && (this.getProductIsVariant() == null ? other.getProductIsVariant() == null : this.getProductIsVariant().equals(other.getProductIsVariant()))
            && (this.getProductIsOnSale() == null ? other.getProductIsOnSale() == null : this.getProductIsOnSale().equals(other.getProductIsOnSale()))
            && (this.getOrders() == null ? other.getOrders() == null : this.getOrders().equals(other.getOrders()))
            && (this.getStoreName() == null ? other.getStoreName() == null : this.getStoreName().equals(other.getStoreName()))
            && (this.getProductIsDelete() == null ? other.getProductIsDelete() == null : this.getProductIsDelete().equals(other.getProductIsDelete()))
            && (this.getProductIsBest() == null ? other.getProductIsBest() == null : this.getProductIsBest().equals(other.getProductIsBest()))
            && (this.getProductIsNew() == null ? other.getProductIsNew() == null : this.getProductIsNew().equals(other.getProductIsNew()))
            && (this.getProductIsHot() == null ? other.getProductIsHot() == null : this.getProductIsHot().equals(other.getProductIsHot()))
            && (this.getProductIsPromote() == null ? other.getProductIsPromote() == null : this.getProductIsPromote().equals(other.getProductIsPromote()))
            && (this.getProductSellerNote() == null ? other.getProductSellerNote() == null : this.getProductSellerNote().equals(other.getProductSellerNote()))
            && (this.getProductIsCheck() == null ? other.getProductIsCheck() == null : this.getProductIsCheck().equals(other.getProductIsCheck()))
            && (this.getGmtCreate() == null ? other.getGmtCreate() == null : this.getGmtCreate().equals(other.getGmtCreate()))
            && (this.getGmtModified() == null ? other.getGmtModified() == null : this.getGmtModified().equals(other.getGmtModified()))
            && (this.getIsDeleted() == null ? other.getIsDeleted() == null : this.getIsDeleted().equals(other.getIsDeleted()))
            && (this.getProductLongDesc() == null ? other.getProductLongDesc() == null : this.getProductLongDesc().equals(other.getProductLongDesc()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getProductCategoryId() == null) ? 0 : getProductCategoryId().hashCode());
        result = prime * result + ((getProductBrandId() == null) ? 0 : getProductBrandId().hashCode());
        result = prime * result + ((getStoreId() == null) ? 0 : getStoreId().hashCode());
        result = prime * result + ((getProductSn() == null) ? 0 : getProductSn().hashCode());
        result = prime * result + ((getProductName() == null) ? 0 : getProductName().hashCode());
        result = prime * result + ((getProductImg() == null) ? 0 : getProductImg().hashCode());
        result = prime * result + ((getProductImgs() == null) ? 0 : getProductImgs().hashCode());
        result = prime * result + ((getProductClickCount() == null) ? 0 : getProductClickCount().hashCode());
        result = prime * result + ((getProductInventoryNumber() == null) ? 0 : getProductInventoryNumber().hashCode());
        result = prime * result + ((getProductInventoryWarnNumber() == null) ? 0 : getProductInventoryWarnNumber().hashCode());
        result = prime * result + ((getProductWeight() == null) ? 0 : getProductWeight().hashCode());
        result = prime * result + ((getProductMarketPrice() == null) ? 0 : getProductMarketPrice().hashCode());
        result = prime * result + ((getProductShopPrice() == null) ? 0 : getProductShopPrice().hashCode());
        result = prime * result + ((getProductPromotePrice() == null) ? 0 : getProductPromotePrice().hashCode());
        result = prime * result + ((getProductPromoteStartDate() == null) ? 0 : getProductPromoteStartDate().hashCode());
        result = prime * result + ((getProductPromoteEndDate() == null) ? 0 : getProductPromoteEndDate().hashCode());
        result = prime * result + ((getProductKeywords() == null) ? 0 : getProductKeywords().hashCode());
        result = prime * result + ((getProductDesc() == null) ? 0 : getProductDesc().hashCode());
        result = prime * result + ((getProductIsVariant() == null) ? 0 : getProductIsVariant().hashCode());
        result = prime * result + ((getProductIsOnSale() == null) ? 0 : getProductIsOnSale().hashCode());
        result = prime * result + ((getOrders() == null) ? 0 : getOrders().hashCode());
        result = prime * result + ((getStoreName() == null) ? 0 : getStoreName().hashCode());
        result = prime * result + ((getProductIsDelete() == null) ? 0 : getProductIsDelete().hashCode());
        result = prime * result + ((getProductIsBest() == null) ? 0 : getProductIsBest().hashCode());
        result = prime * result + ((getProductIsNew() == null) ? 0 : getProductIsNew().hashCode());
        result = prime * result + ((getProductIsHot() == null) ? 0 : getProductIsHot().hashCode());
        result = prime * result + ((getProductIsPromote() == null) ? 0 : getProductIsPromote().hashCode());
        result = prime * result + ((getProductSellerNote() == null) ? 0 : getProductSellerNote().hashCode());
        result = prime * result + ((getProductIsCheck() == null) ? 0 : getProductIsCheck().hashCode());
        result = prime * result + ((getGmtCreate() == null) ? 0 : getGmtCreate().hashCode());
        result = prime * result + ((getGmtModified() == null) ? 0 : getGmtModified().hashCode());
        result = prime * result + ((getIsDeleted() == null) ? 0 : getIsDeleted().hashCode());
        result = prime * result + ((getProductLongDesc() == null) ? 0 : getProductLongDesc().hashCode());
        return result;
    }
}
